
#ifndef SERVICE_REGISTRY_REGISTRY_H_
#define SERVICE_REGISTRY_REGISTRY_H_

#include "service/sdk/service-base.h"

namespace fasmio { namespace service { namespace registry {

class NodeTask;
class NodesTask;

class Registry : public sdk::ServiceBase
{
public:
    Registry(const char* name, IServiceAgent *agent, ILogger *logger);

public:
    virtual bool OnInitialize ();
    virtual void OnFinalize   ();

public:
    bool DoHeartBeat  (IRequest*, NodeTask*, NodesTask**);
    bool DoUnregister (IRequest*, NodeTask*, NodesTask**);
    bool DoGetNodes   (IRequest*, NodesTask**);
};

}}}  // namespace fasmio::service::registry

#endif  // SERVICE_REGISTRY_REGISTRY_H_

